package top.zhongyy.service;

import org.apache.ibatis.annotations.Param;
import top.zhongyy.pojo.Blog;
import com.baomidou.mybatisplus.extension.service.IService;
import top.zhongyy.vo.BlogQuery;

import java.util.List;

/**
 * <p>
 * 博客前端服务类
 * </p>
 *
 * @author Andy
 * @since 2021-03-25
 */
public interface BlogService extends IService<Blog> {
    
    List<Blog> blogListPage();
    
    // 条件查询blog
    List<Blog> searchBlog(BlogQuery blogQuery);
    
    // 新增博客 还需要往 t_blog_tags 表插入数据 原因:方便筛选出每个标签所对应的博客数组及首页中标签对应的博客总数
    int saveBlog(Blog blog);
    
    //删除博客 还要删除 t_blog_tags 表中所有该博客的标签
    int deleteBlog(Long id);
    
    //更新博客 先删除t_blog_tags 表中所有该博客的标签 在插入
    int updateBlog(Blog blog);
    
    // 获取博客列表 带有 byte 和 user 对象
    List<Blog> getBlogList();
    
    // 获取所有博客的推荐列表  sublist方法取前几条数据
    List<Blog> getRecommend(int size);
    
    // 博客的条件查询 针对标题和描述
    List<Blog> searchBlog(String query);
    
    // 博客详情,需要 markdown 转换
    Blog getAndConvert(Long id);
    
    // 获取该类型下的所有博客
    List<Blog> getBlogByType(Long typeId);
    
    // 获取该标签下的所有博客
    List<Blog> getBlogByTag(Long tagId);
    
    // 查询后台的博客 没有过滤 会显示所有文章
    List<Blog> getAdminBlogList();
    
    
}
